//package org.huawei260;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Scanner;
//
///**
// * @Auther: qingle
// * @Date: 2024/8/21-22:39
// * @Description:
// * @version: 1.0
// */
//public class O0011_最小叶子节点 {
//
//	public static void main(String[] args) {
//		Scanner scanner = new Scanner(System.in);
//		String[] input = scanner.nextLine().split(" ");
//		int[] tree = new int[input.length];
//		for (int i = 0; i < input.length; i++) {
//			tree[i] = Integer.parseInt(input[i]);
//		}
//		scanner.close();
//
//		List<Integer> result = findMinLeafPath(tree);
//		for (int num : result) {
//			System.out.print(num + " ");
//		}
//	}
//
//	public static List<Integer> findMinLeafPath(int[] tree) {
//		List<Integer> path = new ArrayList<>();
//		List<Integer> minPath = new ArrayList<>();
//		int minLeafValue = Integer.MAX_VALUE;
//
//		dfs(tree, 1, path, minPath, minLeafValue);
//
//		// 移除路径中最后一个元素，因为它不是叶子节点
//		minPath.remove(minPath.size() - 1);
//		return minPath;
//	}
//
//	public static void dfs(int[] tree, int index, List<Integer> path, List<Integer> minPath, int minLeafValue) {
//		if (index < 0 || tree[index] == -1) return;
//
//		// 添加当前节点到路径
//		path.add(tree[index]);
//
//		// 检查是否为叶子节点
//		if (tree[index * 2] == -1 && tree[index * 2 + 1] == -1) {
//			int currentValue = tree[index];
//			if (currentValue < minLeafValue) {
//				minLeafValue = currentValue;
//				minPath.clear();
//				minPath.addAll(path);
//			}
//		} else {
//			// 继续深度优先搜索左右子节点
//			dfs(tree, index * 2, path, minPath, minLeafValue);
//			dfs(tree, index * 2 + 1, path, minPath, minLeafValue);
//		}
//
//		// 回溯，移除当前节点
//		path.remove(path.size() - 1);
//	}
//}
